package cn.ywsj.ywsjmidtier.service;

import cn.ywsj.ywsjmidtier.common.Connect;
import cn.ywsj.ywsjmidtier.entity.VO.PhotocopiesVo;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.boot.context.properties.bind.BindResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletRequest;

@Api(tags = "个人资产")
@FeignClient(url = Connect.XSX_URL, name = "xsx")
public interface WechatCPCNFeign {

    /**
     * 我的钱包
     *
     * @return
     */
    @ApiOperation("我的钱包")
    @GetMapping("/wechat/cpcnmgr/querytx4691companyaccount")
    String queryTx4691CompanyAccount();

    /**
     * 开户账号信息
     *
     * @param userType
     * @return
     */
    @ApiOperation("开户账号信息")
    @GetMapping("/wechat/cpcnmgr/getopenaccount")
    String getopenaccount(@RequestParam("userType") Integer userType);

    /**
     * 保存开户账号
     *
     * @param
     * @param result
     * @return
     */
    @ApiOperation("保存开户账号")
    @PostMapping("/wechat/cpcnmgr/saveindividualopenaccount")
    String saveindividualopenaccount(@RequestParam("jsonObject") JSONObject jsonObject, @RequestParam("result") BindResult result);

    /**
     * 用户绑定银行卡列表
     *
     * @param start
     * @param pageSize
     * @return
     */
    @ApiOperation("用户绑定银行卡列表")
    @PostMapping("/wechat/cpcnmgr/tountiebindingcard")
    String tountiebindingcard(@RequestParam("jsonObject") JSONObject jsonObject, @RequestParam("start") Integer start, @RequestParam("pageSize") Integer pageSize);

    /**
     * 绑定银行卡列表
     *
     * @param start
     * @param pageSize
     * @return
     */
    @ApiOperation("绑定银行卡列表")
    @GetMapping("/wechat/cpcnmgr/querybindingcardlist")
    String querybindingcardlist(@RequestParam("start") Integer start, @RequestParam("pageSize") Integer pageSize);

    /**
     * 绑卡详情
     *
     * @param bindingCardId
     * @return
     */
    @ApiOperation("绑卡详情")
    @GetMapping("/wechat/cpcnmgr/toseebindingcard")
    String toseebindingcard(Integer bindingCardId);

    /**
     * 银行列表
     *
     * @param type
     * @return
     */
    @ApiOperation("银行列表")
    @GetMapping("/member/cpcnmgr/querypageselectvalue")
    String querypageselectvalue(String type);

    /**
     * 解绑银行卡
     *
     * @param jsonObject
     * @return
     */
    @ApiOperation("解绑银行卡")
    @PostMapping("/wechat/cpcnmgr/savebindingcard")
    String savebindingcard(@RequestParam("jsonObject") JSONObject jsonObject);

    /**
     * 提现用户列表
     *
     * @return
     */
    @ApiOperation("提现用户列表")
    @GetMapping("/wechat/cpcnmgr/gettx4641recharge")
    String gettx4641recharge();

    /**
     * 充值列表
     *
     * @param start
     * @param pageSize
     * @return
     */
    @ApiOperation("充值列表")
    @GetMapping("/wechat/cpcnmgr/queryrechargerecord")
    String queryrechargerecord(@RequestParam("start") Integer start, @RequestParam("pageSize") Integer pageSize);

    /**
     * 购物车_在线支付Strin
     *
     * @param mainOrderId
     * @param payType
     * @param paymentWay
     * @param request
     * @return
     */
    @ApiOperation("购物车_在线支付Strin")
    @PostMapping("/wechat/cpcnmgr/onlinepayment")
    String creatOnlinePayment(@RequestParam("mainOrderId") String mainOrderId, @RequestParam("payType") Integer payType, @RequestParam("paymentWay") Integer paymentWay, @RequestParam("request") HttpServletRequest request);

    @GetMapping("/wechat/cpcnmgr/toaddphotocopies")
    String toAddPhotocopies();

    @PostMapping("/wechat/cpcnmgr/ajaxaddphotocopies")
    String addPhotocopies(@RequestParam("photocopiesVo") PhotocopiesVo photocopiesVo, @RequestParam("result") BindResult result);

    @GetMapping("/wechat/cpcnmgr/getphotocopiesinfo")
    String toUpdatePhotocopies(@RequestParam("photocopiesVo") JSONObject jsonObject);

    @PostMapping("/wechat/cpcnmgr/ajaxupdatephotocopies")
    String updatePhotocopies(@RequestParam("jsonObject") JSONObject jsonObject, @RequestParam("result") BindResult result);

    @PostMapping("/wechat/cpcnmgr/syncphotocopies")
    String syncPhotocopies(@RequestParam("jsonObject") JSONObject jsonObject);


    @PostMapping("/wechat/cpcnmgr/saveindividualopenaccount")
    String saveIndividualOpenAccount(@RequestParam("jsonObject") JSONObject jsonObject, @RequestParam("result") BindResult result);

    @PostMapping("/wechat/cpcnmgr/savecorporationopenaccount")
    String saveCorporationOpenAccount(@RequestParam("jsonObject") JSONObject jsonObject, @RequestParam("result") BindResult result);

    @PostMapping("/wechat/cpcnmgr/saveretaileropenaccount")
    String saveRetailerOpenAccount(@RequestParam("jsonObject") JSONObject jsonObject, @RequestParam("result") BindResult result);

    @GetMapping("/wechat/cpcnmgr/queryAreadInfoByPidAndLevel")
    String queryAreadInfoByPidAndLevel(@RequestParam("jsonObject") JSONObject jsonObject);

    @GetMapping("/wechat/cpcnmgr/querypreareainfobyid")
    String queryPreAreaInfoById(@RequestParam("jsonObject") JSONObject jsonObject);

    @GetMapping("/wechat/cpcnmgr/querypageselectvalue")
    String queryPageSelectValue(@RequestParam("type") String type);

    @GetMapping("/wechat/cpcnmgr/tobindingcard")
    String toBindingCard();

    @GetMapping("/wechat/cpcnmgr/getmodifybindingcard")
    String toModifyBindingCard(@RequestParam("jsonObject") JSONObject jsonObject);

    @PostMapping("/wechat/cpcnmgr/modifybindingcard")
    String ModifyBindingCard(@RequestParam("jsonObject") JSONObject jsonObject);

    @GetMapping("/wechat/cpcnmgr/querycardbininfo")
    String queryCardBinInfo(@RequestParam("jsonObject") JSONObject jsonObject);

    @PostMapping("/wechat/cpcnmgr/savebindingcard")
    String saveBindingCard(@RequestParam("jsonObject") JSONObject jsonObject);

    @GetMapping("/wechat/cpcnmgr/getverifybindingcard")
    String toVerifyBindingCard(@RequestParam("jsonObject") JSONObject jsonObject);

    @GetMapping("/wechat/cpcnmgr/toseebindingcard")
    String toSeeBindingCard(@RequestParam("jsonObject") JSONObject jsonObject);

    @PostMapping("/wechat/cpcnmgr/checkpaypassword")
    String checkPayPassword(@RequestParam("payPassword") String payPassword);

    @PostMapping("/wechat/cpcnmgr/verifybindingcard")
    String verifyBindingCard(@RequestParam("jsonObject") JSONObject jsonObject);

    @GetMapping("/wechat/cpcnmgr/gettx4641recharge")
    String toTx4641Recharge();

    @PostMapping("/wechat/cpcnmgr/savetx4641recharge")
    String saveTx4641Recharge(@RequestParam("jsonObject") JSONObject jsonObject);

    @GetMapping("/wechat/cpcnmgr/queryrechargerecord")
    String queryRechargeRecord(@RequestParam("jsonObject") JSONObject jsonObject);

    @GetMapping("/wechat/cpcnmgr/torechargedetail")
    String toRechargeDetail(@RequestParam("jsonObject") JSONObject jsonObject);

    @PostMapping("/wechat/cpcnmgr/savetx4643withdrawal")
    String saveTx4643Withdrawal(@RequestParam("jsonObject") JSONObject jsonObject);
    @GetMapping("/wechat/cpcnmgr/withdrawalrecordlist")
    String withdrawalRecordList(@RequestParam("jsonObject") JSONObject jsonObject);
    @GetMapping("/wechat/cpcnmgr/towithdrawaldetail")
    String toWithdrawalDetail(@RequestParam("jsonObject")JSONObject jsonObject);
    @GetMapping("/wechat/cpcnmgr/transferaccountrecordlist")
    String transferAccountRecordList(@RequestParam("jsonObject")JSONObject jsonObject);
    @GetMapping("/wechat/cpcnmgr/totransaccdetail")
    String totransaccdetail(@RequestParam("jsonObject")JSONObject jsonObject);
    @PostMapping("/wechat/cpcnmgr/tx4671membertransfer")
    String tx4671MemberTransfer(@RequestParam("jsonObject")JSONObject jsonObject);
    @GetMapping("/wechat/cpcnmgr/querytransferable")
    String queryTransferable(@RequestParam("jsonObject")JSONObject jsonObject);
}

